package com.cskaoyan._06this._01introduction;

/**
 * @description:
 * @author: 景天
 * @date: 2023/2/4 9:59
 **/
/*
创建一个汽车类，有颜色（color）和速度（speed）两个属性，行为是可以跑（run）。

实现：
1. 在run成员方法中访问速度和颜色两个属性，调用该方法查看结果。
2. 在run成员方法的形参列表中，添加一个局部变量speed，不修改方法体，调用该方法查看结果。

思考：

1. 两次方法调用的结果一样吗？为什么？
2. 如果我想在2中得到1的访问结果，怎么办呢？
 */
public class Demo {
    public static void main(String[] args) {
        // 创建Car对象
        Car car = new Car();
        car.color = "红色";
        // car.speed = 100;
        // 调用run方法
        // car.run();
        // 调用run2这个方法
        car.run2(200);
    }
}

class Car{
    // 定义成员变量
    String color;
    int speed = 100;

    // 定义成员方法
    public void run() {
        System.out.println(color + "颜色的汽车以" + speed + "的速度在高速公路上疾驰!");
    }

    // 定义成员方法
    public void run2(int speed) {
        // 主要原因是因为局部变量跟成员变量同名
        // 就近原则---> 优先访问的是局部变量
        // 如果非要访问成员变量----> this
        // this区分在局部变量与成员变量同名的时候(通过this.访问的就是成员变量)
        System.out.println(color + "颜色的汽车以" + this.speed + "的速度在高速公路上疾驰!");
    }
}